<?php
App::uses('AppController','Controller');
class MarcasController extends AppController {
	
	var $uses = array('CatalogoDetalle'); 
	var $components = array('Constantes');

	function beforeFilter(){
		if(!$this->Session->check('usuarioSesionSOT')){
			$this->redirect(array('controller'=>'Seguridad','action'=>'login'));
		}else{
			$this->set('usuarioSesionSOT',$this->Session->read('usuarioSesionSOT'));
		}
	}
	
	public function index(){
        $this->redirect(array('controller'=>'Marcas','action'=>'consultar_marcas'));
    }
    
    public function consultar_marcas(){
    	$this->layout = 'plantillaPrincipal';
    	$this->set('title_for_layout', '::Marcas::');

    	//Traer el listado de marcas de vehiculos
    	$contidions = array();
    	$conditions["CatalogoDetalle.idCatalogo"] = $this->Constantes->MARCAS_VEHICULOS;
    	$marcasVehiculos = $this->CatalogoDetalle->find('all',array('conditions'=>$conditions,'order'=>'CatalogoDetalle.descripcion asc'));

    	$dim = count($marcasVehiculos);
    	$marcasVehiculosArrayJSON = array();
    	$i = 0;
    	while($i<$dim){
    		$objMarca = $marcasVehiculos[$i];
    		$objMarcaJSON = array();
    		$objMarcaJSON["idCatalogo"] = $objMarca["CatalogoDetalle"]["idCatalogo"];
    		$objMarcaJSON["idItem"] = $objMarca["CatalogoDetalle"]["idItem"];
    		$objMarcaJSON["descripcionMarca"] = $objMarca["CatalogoDetalle"]["descripcion"];
    		$objMarcaJSON["indicadorDB"] = "0";
    		
    		$marcasVehiculosArrayJSON[$i] = $objMarcaJSON;
    		$i = $i + 1;
    	}
    	
    	$this->set('marcasVehiculosArrayJSON',$marcasVehiculosArrayJSON);
    	
        //Tomar el mensaje de accion si es que existiese
    	if($this->Session->check('msjRegistroMarca')){
     		$this->set('msjRegistroMarca',$this->Session->read("msjRegistroMarca"));
			$this->Session->delete('msjRegistroMarca');
    	}
    }
    
	function guardar_marca(){
		
		$this->layout = 'plantillaPrincipal';
    	
    	//Tomar los datos
    	if(isset($this->request->data)){
    		
    		$usuarioSesionSOT = $this->Session->read('usuarioSesionSOT');
  			$usuarioRegistro = $usuarioSesionSOT["Usuario"]["idUsuario"];
    		$fechaRegistro = date_create()->format('Y-m-d H:i:s');
    		
    		$dataSource = $this->CatalogoDetalle->getDataSource();
    		
    		$dataSource->begin();

    		$rs = $this->CatalogoDetalle->query("select max(CONVERT(ifnull(idItem,'0'),UNSIGNED INTEGER))+1 correlativo,max(CONVERT(ifnull(numOrden,'0'),UNSIGNED INTEGER))+1 orden from CatalogoDetalle where idCatalogo = ".$this->Constantes->MARCAS_VEHICULOS);
    		$numOrden = $rs[0][0]["orden"];
    		$correlativo = $rs[0][0]["correlativo"];
    		
    		$data = $this->request->data["CatalogoDetalle"];
    		
			$objMarca = array();
			$objMarca["CatalogoDetalle"]["idCatalogo"] = $this->Constantes->MARCAS_VEHICULOS;
			$objMarca["CatalogoDetalle"]["idItem"] = $correlativo;
			$objMarca["CatalogoDetalle"]["numOrden"] = $numOrden;
    		$objMarca["CatalogoDetalle"]["descripcion"] = $data["descripcion"];
    		$objMarca["CatalogoDetalle"]["idUsuarioCreacion"] = $usuarioRegistro;
    		$objMarca["CatalogoDetalle"]["fechaCreacion"] = $fechaRegistro;

  			if ($this->CatalogoDetalle->save($objMarca)) {
  				$this->Session->write('msjRegistroMarca',"Se registr&oacute; la marca");
  				$dataSource->commit();
  			}else{
  				$this->Session->write('msjRegistroMarca',"No se pudo registrar la marca");
  				$dataSource->rollback();
  			}
    	}
    	
    	$this->redirect(array('controller'=>'Marcas','action'=>'consultar_marcas'));
    	
	}
	
	function actualizar_marcas(){
		$this->layout = 'plantillaPrincipal';
    	
    	//Tomar los datos
    	if(isset($this->request->data)){
    		$usuarioSesionSOT = $this->Session->read('usuarioSesionSOT');
  			$usuarioActualizacion = $usuarioSesionSOT["Usuario"]["idUsuario"];
    		$fechaActualizacion = date_create()->format('Y-m-d H:i:s');
    		
    		$data = $this->request->data["Marcas"];
    		$jsonMarcasModificadas = json_decode($data["jsonMarcasModificadas"],true);
    		
    		$i = 0;
	  		$dimMarcas = count($jsonMarcasModificadas);
	  		
	  		$dataSource = $this->CatalogoDetalle->getDataSource();
	  		$dataSource->begin();
	  		while($i<$dimMarcas){
	  					
	  			$objMarcaJSON = $jsonMarcasModificadas[$i];
	  				
	  			$indicadorDB = $objMarcaJSON["indicadorDB"];
	  				
	  			if($indicadorDB == "1"){
	  				$idCatalogo = $objMarcaJSON["idCatalogo"];
	  				$idItem = $objMarcaJSON["idItem"];
	  				$descripcion = $objMarcaJSON["descripcionMarca"];
	  				
	  				$this->CatalogoDetalle->updateAll(
					    array('CatalogoDetalle.descripcion' => $dataSource->value($descripcion, 'string'),'CatalogoDetalle.idUsuarioModifica' =>$dataSource->value($usuarioActualizacion, 'string'),'CatalogoDetalle.fechaModifica' =>'now()'),
					    array('CatalogoDetalle.idCatalogo' => $idCatalogo,'CatalogoDetalle.idItem'=>$idItem)
					);
	  			}
	  			
	  			$i = $i + 1;
	  		}
	  		
    		$this->Session->write('msjRegistroMarca',"Se complet&oacute; el proceso de actualizaci&oacute;n de marcas");
	  		
	  		$dataSource->commit();
    	}
    	
    	$this->redirect(array('controller'=>'Marcas','action'=>'consultar_marcas'));
	}
}

?>